x86/mm: Make sure the event channel is released accurately
authorKaixing Hong <hongkaixing@huawei.com>
Fri, 17 Feb 2012 07:14:25 +0000 (15:14 +0800)
committerKaixing Hong <hongkaixing@huawei.com>
Fri, 17 Feb 2012 07:14:25 +0000 (15:14 +0800)
commit47cf584883df7caf997b51eed15a84ae5a7ce324
treef8ccc4e926c51c56515dc02de977c9f037ae73ee
parent5cf63642892bbb673a576475c2a223c7caef169d
x86/mm: Make sure the event channel is released accurately

    In xenpaging source code,there is an interdomain communication between dom0
and domU. In mem_event_enable(),the function alloc_unbound_xen_event_channel()
allocates a free port for domU, and then it will be bound with dom0.
When xenpaging tears down,it just frees dom0's event channel port by
xc_evtchn_unbind(), leaves domU's port still occupied.
    So we add the patch to free domU's port when xenpaging exits.
We need double free interdomain eventchannel. First free domainU port,
and leave domain 0 port unbond, Then free domain 0 port.

Signed-off-by: Kaixing Hong <hongkaixing@huawei.com>,
Signed-off-by: Zhen Shi <bicky.shi@huawei.com>
Acked-by: Olaf Hering <olaf@aepfle.de>
Committed-by: Tim Deegan <tim@xen.org>
xen/arch/x86/mm/mem_event.c